![HightouchでSourceにSnowflakeを設定してみた](https://devio2023-media.developers.io/wp-content/uploads/2023/04/hightouch_1200_630.png)
HightouchでSourceにSnowflakeを設定してみた
さがらです。
Reverse ETLのサービスであるHightouchでは送信元のデータをSourceとして設定する必要がありますが、このSourceの設定にSnowflakeを設定してみたので、手順をまとめてみます。
参考
Snowflake側の設定
まず、Snowflake側でロール・ウェアハウスなどHightouchでの接続に必要なオブジェクトを定義する必要があります。
- 必須
- ロール:HightouchからSnowflakeにクエリを実行する際に使用されるロール。Hightouchで転送させたいデータを保持するデータベース・スキーマへの
USAGE
権限とテーブルへのSELECT
権限が必須。 - ウェアハウス:HightouchからSnowflakeにクエリを実行する際に使用されるウェアハウス
- データベース:Hightouchで転送させたいデータを保持するデータベース
- ロール:HightouchからSnowflakeにクエリを実行する際に使用されるロール。Hightouchで転送させたいデータを保持するデータベース・スキーマへの
- 推奨
- ユーザー:HightouchからSnowflakeに認証を行う際のユーザー
- ※Lightning engineを使う場合必須
- スキーマ:HightouchのCDC処理で取得したデータを格納するスキーマ
- ロールへの権限追加:上述のCDC処理で取得したデータを格納するスキーマへの書き込み権限(
OWNERSHIP
権限を付与するのが早いです)
Hightouchのドキュメントでは、上記の内容でオブジェクトを定義するためのクエリも記述されていますので、参考にしてみてください。
Hightouch側の設定
続いて、HightouchでのSourceの設定をしていきます。
画面左のSources
を押してから、画面が切り替わったらAdd source
を押します。
いろんなサービスが表示されますが、Snowflake
を選択します。
より詳細なSnowflakeの接続情報の入力画面が出てきます。以下のように入力します。
Account identifier
- 設定するSnowflakeアカウントの`https://ACCOUNT_IDENTIFIER.snowflakecomputing.com`の形式のURLにおいて、`ACCOUNT_IDENTIFIER`を入力
- 具体例:
xy12345.ap-northeast-1.aws
Warehouse
- Snowflake側の設定で準備した、ウェアハウスの名称を入力
Database
- Snowflake側の設定で準備した、Hightouchで転送させたいデータを持つデータベースの名称を入力
Choose your sync engine
では、100万行を超えるデータをSyncさせたい場合はLightning sync engine
を選択し、少量のデータの場合はStandard sync engine
を選択しましょう。
※この使い分けは、公式Docにも「Hightouch recommends using the Lightning sync engine when syncing more than one million rows of data.」と記載があります。
Snowflake側の設定でも少し触れましたが、Lightning sync engine
を選択する場合は、CDC処理で取得したデータを格納するスキーマと、そのスキーマへの書き込み権限を使用するロールに付与するのを忘れないようにしましょう。
続いて、使用するユーザー・ロール・認証情報について入力します。
入力が終わったら、右下のContinue
を押します。
すると、接続テストが行われ、問題なければTesting successful
と表示されます。
最後に、Hightouch上で区別するためのSourceの名称を入力し、右下のFinish
を押します。これでSnowflakeをSouceとして設定する手順は完了です!
最後に
Hightouchで送信元のデータとなるSourceにSnowflakeを設定してみました。手順はそれほど難しくないと思います!
あとは、データの送信先となるDestinationsを設定して、Snowflake上のデータを外部のアプリケーションでも活用していきましょう!